package com.handyshop.mall.dubbo.order.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.handyshop.mall.dubbo.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

@ApiModel(value = "订单表")
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "nrs_order")
public class Order extends BaseEntity {
    /**
     * 系统id
     */
    @TableField(value = "system_id")
    @ApiModelProperty(value = "系统id")
    private Long systemId;

    /**
     * 组织id
     */
    @TableField(value = "org_id")
    @ApiModelProperty(value = "组织id")
    private Long orgId;

    /**
     * 用户id
     */
    @TableField(value = "user_id")
    @ApiModelProperty(value = "用户id")
    private Long userId;

    /**
     * 商家id
     */
    @TableField(value = "merchant_id")
    @ApiModelProperty(value = "商家id")
    private Long merchantId;

    /**
     * 订单状态(?)
     */
    @TableField(value = "`status`")
    @ApiModelProperty(value = "订单状态(?)")
    private Integer status;

    /**
     * 是否货到付款(0:否; 1:是)
     */
    @TableField(value = "offline_flag")
    @ApiModelProperty(value = "是否货到付款(0:否; 1:是)")
    private Boolean offlineFlag;

    /**
     * 是否为虚拟货品交易(0:否; 1:是)
     */
    @TableField(value = "virtual_flag")
    @ApiModelProperty(value = "是否为虚拟货品交易(0:否; 1:是)")
    private Boolean virtualFlag;

    /**
     * 支付方式
     */
    @TableField(value = "pay_type")
    @ApiModelProperty(value = "支付方式")
    private String payType;

    /**
     * 配送方式
     */
    @TableField(value = "delivery_type")
    @ApiModelProperty(value = "配送方式")
    private String deliveryType;

    /**
     * 收货人
     */
    @TableField(value = "consignee_name")
    @ApiModelProperty(value = "收货人")
    private String consigneeName;

    /**
     * 收货地区
     */
    @TableField(value = "consignee_area")
    @ApiModelProperty(value = "收货地区")
    private String consigneeArea;

    /**
     * 收货地址
     */
    @TableField(value = "consignee_address")
    @ApiModelProperty(value = "收货地址")
    private String consigneeAddress;

    /**
     * 收货地邮编
     */
    @TableField(value = "consignee_zip")
    @ApiModelProperty(value = "收货地邮编")
    private String consigneeZip;

    /**
     * 收货人固话
     */
    @TableField(value = "consignee_tel")
    @ApiModelProperty(value = "收货人固话")
    private String consigneeTel;

    /**
     * 收货人Email
     */
    @TableField(value = "consignee_email")
    @ApiModelProperty(value = "收货人Email")
    private String consigneeEmail;

    /**
     * 收货人手机
     */
    @TableField(value = "consignee_mobile")
    @ApiModelProperty(value = "收货人手机")
    private String consigneeMobile;

    /**
     * gps
     */
    @TableField(value = "gps")
    @ApiModelProperty(value = "gps")
    private String gps;

    /**
     * 是否要开发票(0:否; 1:是)
     */
    @TableField(value = "need_invoice")
    @ApiModelProperty(value = "是否要开发票(0:否; 1:是)")
    private Boolean needInvoice;

    /**
     * 商品金额
     */
    @TableField(value = "goods_price")
    @ApiModelProperty(value = "商品金额")
    private BigDecimal goodsPrice;

    /**
     * 运费金额
     */
    @TableField(value = "freight")
    @ApiModelProperty(value = "运费金额")
    private BigDecimal freight;

    /**
     * 优惠金额
     */
    @TableField(value = "discounts")
    @ApiModelProperty(value = "优惠金额")
    private BigDecimal discounts;

    /**
     * 应付金额
     */
    @TableField(value = "total_price")
    @ApiModelProperty(value = "应付金额")
    private BigDecimal totalPrice;

    /**
     * 实付金额
     */
    @TableField(value = "payment")
    @ApiModelProperty(value = "实付金额")
    private BigDecimal payment;

    /**
     * 会员身份优惠金额
     */
    @TableField(value = "vip_discount")
    @ApiModelProperty(value = "会员身份优惠金额")
    private BigDecimal vipDiscount;

    /**
     * 商品促销优惠金额
     */
    @TableField(value = "goods_discount")
    @ApiModelProperty(value = "商品促销优惠金额")
    private BigDecimal goodsDiscount;

    /**
     * 订单促销优惠金额
     */
    @TableField(value = "order_discount")
    @ApiModelProperty(value = "订单促销优惠金额")
    private BigDecimal orderDiscount;

    /**
     * 平台
     */
    @TableField(value = "platform")
    @ApiModelProperty(value = "平台")
    private Object platform;

    /**
     * 订单类型
     */
    @TableField(value = "order_type")
    @ApiModelProperty(value = "订单类型")
    private Object orderType;

    /**
     * 会员备注
     */
    @TableField(value = "memo")
    @ApiModelProperty(value = "会员备注")
    private String memo;

    /**
     * 管理员备注
     */
    @TableField(value = "remarks")
    @ApiModelProperty(value = "管理员备注")
    private String remarks;

    /**
     * 下单IP地址
     */
    @TableField(value = "ip")
    @ApiModelProperty(value = "下单IP地址")
    private String ip;

    /**
     * 支付时间
     */
    @TableField(value = "pay_time")
    @ApiModelProperty(value = "支付时间")
    private Date payTime;

    public static final String COL_ID = "id";

    public static final String COL_SYSTEM_ID = "system_id";

    public static final String COL_ORG_ID = "org_id";

    public static final String COL_USER_ID = "user_id";

    public static final String COL_MERCHANT_ID = "merchant_id";

    public static final String COL_STATUS = "status";

    public static final String COL_OFFLINE_FLAG = "offline_flag";

    public static final String COL_VIRTUAL_FLAG = "virtual_flag";

    public static final String COL_PAY_TYPE = "pay_type";

    public static final String COL_DELIVERY_TYPE = "delivery_type";

    public static final String COL_CONSIGNEE_NAME = "consignee_name";

    public static final String COL_CONSIGNEE_AREA = "consignee_area";

    public static final String COL_CONSIGNEE_ADDRESS = "consignee_address";

    public static final String COL_CONSIGNEE_ZIP = "consignee_zip";

    public static final String COL_CONSIGNEE_TEL = "consignee_tel";

    public static final String COL_CONSIGNEE_EMAIL = "consignee_email";

    public static final String COL_CONSIGNEE_MOBILE = "consignee_mobile";

    public static final String COL_GPS = "gps";

    public static final String COL_NEED_INVOICE = "need_invoice";

    public static final String COL_GOODS_PRICE = "goods_price";

    public static final String COL_FREIGHT = "freight";

    public static final String COL_DISCOUNTS = "discounts";

    public static final String COL_TOTAL_PRICE = "total_price";

    public static final String COL_PAYMENT = "payment";

    public static final String COL_VIP_DISCOUNT = "vip_discount";

    public static final String COL_GOODS_DISCOUNT = "goods_discount";

    public static final String COL_ORDER_DISCOUNT = "order_discount";

    public static final String COL_PLATFORM = "platform";

    public static final String COL_ORDER_TYPE = "order_type";

    public static final String COL_MEMO = "memo";

    public static final String COL_REMARKS = "remarks";

    public static final String COL_IP = "ip";

    public static final String COL_PAY_TIME = "pay_time";

    public static final String COL_DELETE_FLAG = "delete_flag";

    public static final String COL_CREATOR_ID = "creator_id";

    public static final String COL_CREATOR = "creator";

    public static final String COL_CREATE_TIME = "create_time";

    public static final String COL_MODIFY_TIME = "modify_time";
}